Conversation
| _args: &[OperandRef<'tcx, Self::Value>], | ||
| _is_cleanup: bool, | ||
| ) -> Self::Value { | ||
| bug!("LLVM intrinsic call not supported in SPIR-V backend: {instance:?}") |
There was a problem hiding this comment.
I think we want to use this rather than our own home-grown replacements, but didn't want to do it in this PR.
14cdf92 to
6434ab8
Compare
|
|
|
Tried to update with a patched Details |
|
Cool, I'll take a look. There were some changes in this area. |
There was a problem hiding this comment.
I wonder whether this is still needed? After #148789, we can simply detect Arguments::from_str if the argument is a const str.
There was a problem hiding this comment.
panic and panic_nounwind use Arguments::from_str. But panic_display / unreachable_display still go through format_args and panic_bounds_check also formats dynamic values. So I think we need both.
2fe48e0 to
db063f6
Compare
|
@nazar-pc I think what you saw should be fixed. |
|
Yes, clippy is happy now, tests are passing too |
| let alloc_size = alloc.inner().size(); | ||
| if alloc_size.bytes() % elem_size.bytes() != 0 { | ||
| return None; | ||
| } |
There was a problem hiding this comment.
This would be an error right? Would it make sense to silently do nothing here?
| @@ -86,6 +101,12 @@ pub(crate) fn provide(providers: &mut Providers) { | |||
| arg.mode = PassMode::Ignore; | |||
| } | |||
|
|
|||
| // SPIR-V backend lowers arguments by-value and cannot handle | |||
| // backend-specific indirection/casts at this layer. | |||
| if matches!(arg.mode, PassMode::Cast { .. } | PassMode::Indirect { .. }) { | |||
| arg.mode = PassMode::Direct(ArgAttributes::new()); | |||
| } | |||
There was a problem hiding this comment.
There's an make_direct_deprecated above this here. Seems to be duplication?
| #![feature(box_patterns)] | ||
| #![feature(file_buffered)] | ||
| #![feature(if_let_guard)] | ||
| #![cfg_attr(bootstrap, feature(if_let_guard))] |
There was a problem hiding this comment.
I don't think rustc_codegen_spirv ever needs cfg(bootstrap). Should just remove the features that are stabilized?
There was a problem hiding this comment.
Annoyingly these were still in the files that the pqp machinery duplicates, so they were needed to not trip our out of sync warning. I saw they were later removed, so I rolled to a newer nightly to pick tat up as the other changes were minimal.
Update the pinned workspace toolchain to rustc 1.96.0-nightly (1d8897a4e 2026-03-13) and keep REQUIRED_RUST_TOOLCHAIN in sync. Mirror the current rustc_codegen_ssa crate-attribute header in lib.rs, keep rustc_codegen_spirv-specific lint allowances outside that mirrored block, and drop the now-unneeded bootstrap-only header filtering from build.rs.
Use exact rust_gpu attribute paths with get_attrs_by_path, let AggregatedSpirvAttributes parse filtered iterators directly, and replace the manual debug filename arena allocation with DroplessArena::alloc_str. Also port the rustc-private API drift in this nightly by importing assert_matches from std, using rustc_span::Spanned directly, and renaming BackendRepr::ScalableVector to SimdScalableVector.
Keep the existing runtime-array reification path for const pointer bitcasts, but report a specific zombie reason when the backing allocation size is not a multiple of the runtime-array element size instead of silently falling through to the generic const_bitcast error.
This disassembly test only cares about the rotate lowering pattern, not source line tables. Strip OpLine records entirely so line-number drift across toolchains does not require reblessing the test.
Requires #542